//
//  ZBStatusTableViewCell.swift
//  ZBWb
//
//  Created by 天隐翎 on 16/4/16.
//  Copyright © 2016年 csdn. All rights reserved.
//

import UIKit
import SnapKit

class ZBStatusTableViewCell: UITableViewCell {
//    var status:ZBStatus?{
//        didSet{
//            originalView.status = status
//        }
//
//    }
//    重写set方法进行传值
    
    //工具条的顶部的约束对象
    var toolBarTopCons: Constraint?
    var statusViewModel:ZBStatusCellViewModel?{
        didSet{
            originalView.StatusCellViewModel = statusViewModel
            statusToolBar.StatusCellViewModel = statusViewModel
//            retweetedView.StatusCellViewModel = statusViewModel
            
            //判断是否是转发微博 修改底部toolbar顶部的约束
            //放置cell复用  snp_updateConstraints: 如果约束存在就更新,约束不存在就创建
            
            //在更新约束之前先 卸载toolbar顶部的约束  先记录顶部约束
            self.toolBarTopCons?.uninstall()
            if statusViewModel?.status?.retweeted_status != nil {
                //转发微博
                //修改约束
                statusToolBar.snp_updateConstraints(closure: { (make) -> Void in
                    self.toolBarTopCons = make.top.equalTo(retweetedView.snp_bottom).constraint
                })
                //显示转发微博
                retweetedView.hidden = false
                //设置数据源
                retweetedView.StatusCellViewModel = statusViewModel
            } else {
                //原创微博
                //修改约束
                statusToolBar.snp_updateConstraints(closure: { (make) -> Void in
                    self.toolBarTopCons = make.top.equalTo(originalView.snp_bottom).constraint
                })
                //隐藏转发微博
                retweetedView.hidden = true
                //设置数据源
                retweetedView.StatusCellViewModel = nil
            }

        }
        
    }
    override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)        
//        设置界面
        setUI()
//        设置选中的cell的背景色
        selectionStyle = .None
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
//    设置UI
    private func setUI(){
//        backgroundColor = randomColor()
//        添加子控件
        contentView.addSubview(originalView)
        contentView.addSubview(statusToolBar)
        contentView.addSubview(retweetedView)
//        retweetedView.backgroundColor = UIColor.redColor()
//        设置约束
//        原创微博
        originalView.snp_makeConstraints { (make) -> Void in
            make.left.top.right.equalTo(contentView)
//            设置UIview的预测高度
//            make.height.equalTo(100)
        }
        
        retweetedView.snp_makeConstraints { (make) -> Void in
            make.top.equalTo(originalView.snp_bottom)
            make.left.right.equalTo(contentView)
//            make.height.equalTo(100)
        }
        
        
        
        
//        评论转发按钮
        statusToolBar.snp_makeConstraints { (make) -> Void in
//            make.top.equalTo(retweetedView.snp_bottom)
            //constraint 添加约束 并且记录约束对象
            self.toolBarTopCons = make.top.equalTo(retweetedView.snp_bottom).constraint

            make.left.right.equalTo(contentView)
            make.height.equalTo(36)
        }
        //添加contentView的底部约束
        // snp_makeConstraints  - make 屏蔽了frame布局
        contentView.snp_makeConstraints { (make) -> Void in
            //其他的几个约束也需要同时添加 不然contentView只知道底部在哪个地方
            make.left.right.top.equalTo(self)
            make.bottom.equalTo(statusToolBar.snp_bottom)
        }
        
        
    }
    //    懒加载子控件
    private lazy var originalView:ZBStatusOriginalView = ZBStatusOriginalView()
    //底部三个按钮
    private lazy var statusToolBar: ZBStatusToolBar = ZBStatusToolBar()
    //    转发微博
    private lazy var retweetedView: ZBStatusRetweetedView = ZBStatusRetweetedView()
    
    
    
}



























































